package com.example.cdctest.service;

import com.example.cdctest.pojo.Admin;
import com.example.cdctest.pojo.Answers;
import com.example.cdctest.pojo.Question;
import com.example.cdctest.pojo.QuestionType;
import com.github.pagehelper.PageInfo;

import java.util.List;

public interface QuestionService extends CommonService<Question> {

    //添加问题及其选项，问题题目，问题解析，问题正确选项，问题错误选项，问题的类型id,问题类别的id
    void insertQuestion(String subject, String explain, String[] answers, String[] trueAnswers, Integer questionId, Integer categoryId, Admin admin);

    //通过页面传的关键字，问题类型，或者页码取值
    PageInfo<Question> findAllQuestions(String subject, int pageNum, int pageSize, Integer questionTypeId);

    //通过关键字，页码或者问题类型获得查询的数量
    Integer getQuestionCount(String subject, Integer pageNum, Integer pageSize, Integer questionTypeId);

    //通过当前问题的id,查出这个问题下所有的问题选项
    List<Answers> getAnswersById(Integer id);

    //通过问题选项的id，修改问题的选项内容
    void updateAnswer(Answers answers);

    //通过问题的id，删除该id的问题,以及该问题下所有的选项
    void updateQuestionById(Integer id);

    //通过批量问题的id，删除这些id下的问题，及其对应的选项
    void updateBatchQuestion(String ids);

    List<Question> randomTest();

    //递归调用
     void addQuestionCount(QuestionType questionType);

    List<Question> selectQuestionByCategoryid(Integer id);

    List<Question> selectQuestionByQuestionTypeid(Integer id);

    List<Question> selectAllQuestion();
}
